home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus Special 26 / AMIGAplus Sonderheft 26 (2000)(Falke)(DE)(Track 1 of 2)[!].iso / Tools / Text-Viewer / MSWordView / notes / ole / olemessage < prev   
Encoding:
Internet Message Format  |  1999-03-29  |  11.7 KB

  1. X-RDate: Mon, 12 Oct 1998 18:12:44 +0100 (IST)
  2. Received: from mailgate.ul.ie ([136.201.1.23]) by exch-staff1.ul.ie with SMTP
  3.  (Microsoft Exchange Internet Mail Service Version 5.5.1960.3) id 4QKT1J2B;
  4.  Mon, 12 Oct 1998 17:39:50 +0100
  5. Received: from centauri.lci.ulsa.mx by mailgate.ul.ie with SMTP (PP) id
  6.  <07836-0@mailgate.ul.ie>; Mon, 12 Oct 1998 17:55:27 +0000
  7. Received: from localhost (filters@localhost) by centauri.lci.ulsa.mx
  8.  (8.8.7/8.8.7) with SMTP id DAA19536; Mon, 12 Oct 1998 03:35:22 -0500
  9. Date: Mon, 12 Oct 1998 03:35:22 -0500 (CDT)
  10. Reply-To: Filters Proyect <filters@centauri.lci.ulsa.mx>
  11. Message-ID: <Pine.LNX.3.96.981012025845.18827H-101000@centauri.lci.ulsa.mx>
  12. MIME-Version: 1.0
  13. Content-Type: MULTIPART/MIXED; BOUNDARY="231244123-63504888-908179209=:18827"
  14. Content-ID: <Pine.LNX.3.96.981012030124.18827J@centauri.lci.ulsa.mx>
  15. XFMstatus: 0200
  16. From: Filters Proyect <filters@centauri.lci.ulsa.mx>
  17. To: Caolan McNamara <Caolan.McNamara@ul.ie>,
  18.  Andrew Scriven <andy.scriven@research.natpower.co.uk>
  19. Subject: OLEdecod
  20.  
  21.   This message is in MIME format.  The first part should be readable text,
  22.   while the remaining parts are likely unreadable without MIME-aware tools.
  23.   Send mail to mime@docserver.cac.washington.edu for more info.
  24.  
  25. --231244123-63504888-908179209=:18827
  26. Content-Type: TEXT/PLAIN; CHARSET=US-ASCII
  27. Content-ID: <Pine.LNX.3.96.981012030124.18827K@centauri.lci.ulsa.mx>
  28.  
  29. Hello.
  30.  
  31. Andrew, I have studied your excellent code. Thank you for writting it! I
  32. never though that a replacement for LAOLA in C could be done in a very few
  33. lines of code.  And thank you to explain me about directories in OLE files
  34. too. It is easy, but I didn't understood until you explain it to me. Thank
  35. you again. 
  36.  
  37. As attachment (gzipped), I send you guys my own version of the Andrew's
  38. code.  Andrew, if you like it, you could incorporate it to your own version:
  39.  
  40. Changes:
  41.  
  42. * Added a lot of validations (memory allocations and file access).
  43. * Named OLEdecod (Andrew please, rename it again if you want).
  44. * Include the Caolan's read from memory functions (Andrew's functions
  45.   didn't work for me, in Intel, I don't know why).
  46. * Simplified the memory pps structure. Before, pps_list was a pointer to
  47.   an array of pointers to pps_entry. Now, pps_list is a pointer to an
  48.   array of pps_entry. Less memory to allocate!
  49. * Each pps of type file (called by Microsoft streams) are now saved in
  50.   separated temporal files, wich names are in pps_list.
  51. * Added freeOLEtree function, wich should be called after processing the
  52.   tree (see main.c).
  53. * In pps_entry, changed type of next, previous and dir fields: now are U32
  54.   (unsigned long int) for simplicity.
  55. * Added an example (main.c) wich shows how to visit only the top level
  56.   streams (Caolan, see that file).
  57. * Added VERBOSE symbol. Compile the attachment using -DVERBOSE, please.
  58. * Added more bytes that I would want.
  59. * Tested on MS-DOS (compiled with Borland C++ 3.1).
  60.  
  61. Missing:
  62.  
  63. * Don't know how to interpret seconds and days fields.
  64. * The solution to MAXBLOCKS artificial limit.
  65.   Here, one proposed solution:
  66.      Before extract the sbd block list, read all the number blocks from
  67.      BDepot and count it, then allocate the nedded memory and finally
  68.      extract the list.
  69.   This solution should be easy, and fast because we read from memory.
  70.   The same goes for root_list.
  71. * Write and test big endian version of Caolan's read from memory functions.
  72.  
  73. And that's all.
  74.  
  75. Hope you like it. Please, send me your opinions and flames.
  76.  
  77.  
  78. -- Filters Proyect Maintainer: Arturo Tena <filters@centauri.lci.ulsa.mx>
  79. <http://centauri.lci.ulsa.mx/~filters/> (this server is down in weekends :( ) 
  80.  
  81.  
  82. --231244123-63504888-908179209=:18827
  83. Content-Type: APPLICATION/X-GUNZIP; NAME="all.c.gz"
  84. Content-Transfer-Encoding: BASE64
  85. Content-ID: <Pine.LNX.3.96.981012030009.18827I@centauri.lci.ulsa.mx>
  86. Content-Description: 
  87.  
  88. H4sICMS1ITYAA2FsbC5jAO08a3PbNrafpV+BqJNUlGlFspPUiZy0TmI3vnUSj2XfbCfr8VAUZHFD
  89. kbok5Uez2d++5wGA4EOyk6Z37s61Z5qSIHBwgPM+OFCz2XzYEZ0//yc6DxFSupjP4yTrTr8dJkJq
  90. IlpNIcSQ4Yl1cZjEF8FYpiKNZ1KMgnPhRWMRBlkWSiGjceBFwhulWeL5WRBHYrKI6CHtIpxX8fw6
  91. Cc6nmWi/ckT/6dMtaPPiEAa99d95My/xmtjveBqkYp7E54k3E/A4SaSEGSfZpZfIgbiOF8KHMYkc
  92. BzBVMFpkUgQZovIwTsQsHgeTa4QDbYtoLBORTaXIZDJLRTyhl1/fnYhfZSQTLxSHi1EY+OIg8GWU
  93. SuHB1NiSTuVYjAgOjthDHIYKB7EXA2APVzYQMoDvibiQSYpL3tBzKICuiBME0vYyxDwR8RzHOYDu
  94. tQi9LB/arV18vsaxCCKCPI3nsJ4pAIQVXgZhKEZSLFI5WYQugoDO4sP+8Zv3J8di593v4sPO0dHO
  95. u+PfB9A5m8bwVV5IBhXM5mEAkGFViRdl14A8Qni7e/TqDQzZebl/sH/8OyxB7O0fv9sdDsXe+yOx
  96. Iw53jo73X50c7ByJw5Ojw/fD3S7wiUS0JAJYscETohFs4lhmXhCmvOzfgagp4BaOxdS7kEBcXwYX
  97. gJknfGCbmwmHQLwwjs5pkdA538aBCCYiijNXXCYB8EoWV0mKw3OqumI/8ruuePxUHEvYIikOQ88H
  98. Wg4XCGBzs+eKl3GaYc+3O6K30e/31/ubvZ+EOBnuNFkOmxXuFtvc0NUNvyzCbiBfQM8jCSs6CCby
  99. WWVQ/tcR4nUcROfPxNuhj9zw5tU+jP0QJ5/0sBLowtjDaRwB/LXNx5vrT/rrG72NJ0+fwviTo4Nn
  100. Yppl82cPH15eXnb9NOrS6If/8hkXHj8MYGZ4i2Hf/2cBIglynsnza1pv84exnASRFCdbjUWUBucR
  101. EM+fekn+of8k/wK0Bo0SRFn+eXMj/0yExK/N5smWmAThWZpIbwzPbfivA5+cQRMAWp/gxf62uWF9
  102. gxfrW45rJtOsnbmJzC680EVt5Yi/Nxuf8Z8GME37XjtzHMHvDfw+4EcYsUhQBeFAbvuC/35B4MEE
  103. wIv/3j16CXJh5gIpH8WpbKcIb57A4gB+6gzMc+vvUQtevzR/kCHwc3UcfAAVO7lpBlhtW17NE3ue
  104. H7BBtMRz0bu639sKr2AuV1CvpTMaOLecd7hi1vvpLSYcftV0gN4OKK3rNqquazeUkUU7pHgGksuk
  105. QZXTxldc/4A+iO3nAobwy9qaw2Q1iBNM0fp4P1ycljYNB7iCO3zEl1NnwKRftotlNJcukF+Hb95/
  106. AO17VIG0ZQAhGDcdhbH/CTHXMv7ZetZ/eif6jPnGoKaP2Z9+vkF9sZ1vUJ93qDyubj6Lm8GPoG2D
  107. /5ud6zsrEdjIEdgABHiJ6l1TiSi8dNr7vY0rAZN1cJ/Eml5XB2jY2+j1oIWAOY6jRFmJOc14H3rt
  108. gcCXRFKLd3lSu02RX6D/NY0vwUNBJwgsOyrHO0oupyRTIEhpOtG+mW5OHf2rfOB/FRcQ7ejJKIHW
  109. umj9BUxCol+vKurZwqiLvyhM8O/ChLsw4S5MuAsT1Ni/NkyAFf8QRH64GEuxbTIVL+jTyVaz1tVv
  110. fobplcvdCaJBE91scPib9d4/dYeXgrHEJugEUAbISdpGdtoUEgihbRY2gHnoUyP0hiYDgF/x3+1t
  111. saVb1rhHf5AjSbMQkpsbzfowhJEEjCpYQq8ylsV1ljAufwTsN27Evv/kNuh/X4MTh3Is/Xj8JxJT
  112. BYPz/mCX4EkwOa/54W3gJzHaAPyIOwNGCKx0DCowBQ0xmwNrR9lyO7MTjRN5KYZ+AlolujMzd2bm
  113. P8/MLLczYD5C6aWwDubEXw8PGIsMCDC6FtilKAFiG/j4upvy2y+JTKWX+NNu5GXz+FImXT/uLj69
  114. aNbLUxWehcvuVZbImQyvWUYCw+A7CSihGJYagSX06OWXcQAkyGZAoW6cnL8Q2yDaGFz9ArudeYsk
  115. 6IZ+ANYo9bqzqxfWLOvf569uJbidvB3k3u5G5+DLSwgKzml5ISCcgAi+XAThGBpd8SGIxjMUkDfw
  116. D7xOgXpTfP/gXQMxL+EzknD47rF4cvjSFSe/ISAyx6L96BHs6U9PN8XW0ycbvSeu2POuSq2P+991
  117. xRi3BpMIUxKgTF/vvnr/+uyNiVmsJkxkGIuejYMY7PlKOw86ZOFnYj5PzyjEAbQ/U4yE+UIReTP5
  118. sXe10Tsd5I2oyunDwVk2m8PT6aABJuXCC4OxiCPgIpCq7BpU0fPnoPVgGhyKTgC0DSCCg86P8VsS
  119. o+j18RGYyoW+z8mESjMG7G8a/KEHoWziq5Z57OreOC/AiORVpmDgI8Q9WXLNShOUQQhKD3hAvzJ/
  120. x9DBggCNCkDNdPdK06VgAKNx2h+UWzbylrF3bXfA1w3yMwSmLcL4ktGCNcpwnLqoxfWsUQoBXW5x
  121. x8Ty8B0MbCq8CRoOC5l5Ii+CeJEOCHv9hgTXWzeSE9S6iYyTMclMYfg8jRazkUzU+Hkq+L2w4Ax0
  122. g9ofehbES9zly6CJu4S8W2Y2eiJiDHJPYpHNF9kz0QMHabjwYU3kIXSVU/wIml+hNYh+zMBiglqE
  123. jdAcyczTRh8A9kPMZZLEiVMYvwXjKyNSKcEFAO0PVALTE4l5iP9mwCsu2gfjwRRAPa0DNQU3wRMT
  124. bxGCzVRf0bLNvKwwGARA7CJ6At1F3PRJEs8US8+kF6WrYduwBDtgYtlcT6y5ZvEFToZuZoy2kvyy
  125. Qu+fTG8fUMtu6N3vme5eCDTlATOYJwFFig6Q/BFYJmbLzu1dUmiYYsrdxjaplo61ZjfnDvBR6QWc
  126. LyAIchwoAzDSTs42ZLMBA1IMPI1GKPePcAxPfhED46P7CBNiq2hbk+WwOd2DEpnrWOP3/hXu+Lcn
  127. gO7c8Tt3/M4dv3PH79zx/xV3nPfwGEUzgu2eANchv+aKNwIXDgw26bevs3SgR6Q3Kxg79JQdSuyz
  128. 6Nr5G5g1RdsHcorMSFpLi2EQgS+VEhFi8qtUfUA1Rig0ecl5pS0MRuU2JGixbUYmt9jmo/dXGnqd
  129. PsTWtNjspamkyKQYseRrfUEbvzSW0fHQ252/vTx4/+q3oehvbEE7ue18rkMOLBl8GAGuagaKiXwB
  130. 9f3wcHhM7gCl/mDXz8hRRgqSPw5eAUJTvrKB5rL3RoDZyV0kxA+eCAEjoDdyamlKBQRnOKv6IHpy
  131. NSPZVuXXUCzQlle+nGdEZo2GU54C3JdUtPGR3Bn1aW8fPIAO8cZAt2Eu9CWdCxZaXss56uPOUD8c
  132. AVqmi4Wvds/AG3x3cnCQQ8HwazE7iye4GDqILKKRjshtLQ0jGeFPpVATloHFKN9DnjDQRcr6OteL
  133. iI5GYw5OUt0auHRmy4nsDnBDZw7/ZdhAdmwPpj2MqTsQSr2hS4BfOX4AMC4Yf9/DsISDQQFCtpgB
  134. kiirE5DgT3oIh02GARHvj4alT13YlnG5kSLHh5jMDrIAgro/kA2ZDbwk8Ebo7BFUIrrZbCGI5PDO
  135. hMaQSz8goa2OFfryhBSBMdA8cNey1m6VPrcoF65xmNDXdoFwrWTUUhl1mKvNXe/xnK545CqOdhyN
  136. wMSDfv5UwiooFsfNrEGEuiFMCmesjvZsbR+wOpeZryZ2HJx69/0eOBj2zLr/IuLOvstruqH7PXOw
  137. 7juu2Krr4mPqonc1BrflaXWtGCmKKfwDmscKsPNVVjrw6jSR6cDDEaykRZvP363ZuZ/Z7X6viOKE
  138. wHMvV53eQy+9eGuhEwq89S6WtsOsJQQHZxnlwJ0Am68hDAqrvImMxUOel1zPof7u8fb6k35f9k4O
  139. itssVoEQa7jkRw6D8Pqjft+T/SoIm1Z43M6EGpNU1ZGr3KcNCsjh5RTVUeF4qYjWhm9vEX0sjmU2
  140. 0KJdZABQhzWdFUfwkKUskRrVQQxCNOdik0Bsl9WpCNbWyIlRGUbaJ9CO8hln5dBSAm7XGCWBu4iZ
  141. LbCg8OKT8Ma6ElGwK01ZMJWEEkbtPhdmVe0+bM6yLXvkYylKAN0eObwW/GMPRLQ1tBcAznzUzE26
  142. mjnT1fOCb7q7+9vZcPe4zO48VslOukRubPCrZId7pnhQyHC46YtFfC5c0aRzS0TQ8xs5hI3H0g/O
  143. rY7GihVJ05e4VfdMkX2KLAsDHWskc68xU73TFay7yawLmKxjrrdQccrKcMJ/EDlHKYi9/Z0wJK4D
  144. +wGT9AdoqYHzcg/wwYMcEfy2LvqnLMIa7skBjWLeZM60R9Qgz0KxRusuQSZ2YqIwPYug7InHJwdl
  145. 7IodJqBcsLqqxAFIbOi7vl4UeUV2DY58Fr21xHwgOBXSuZTDVkk6THTYPdhhmKjNRUkoCK/xFLSL
  146. gH85u6DbQ/Om3qyOX57ZyUFr2rTl5ExNpVn2pCXluYQXW0ZUhkt1nt6enFTDG5Qdi552kYxkl5Qe
  147. lfeRpmt8RuotU0yG7sEpuvhLdU/jWxVP4wat07idymkYfUPqpvGlSAmjb3SEgNVywnItkJBVVYOe
  148. 7S10jdVNkZc894quyR3l1cqGUVqpMSxlkLNdDv8GjVDoWFEJesdL4Gq0wooeWi1UFIOyqN+qR/EP
  149. pb281qKuBLYewbo/VQ2PUUEGQK0OqpC0zimq69fGiESJtgpOlgo1bzP1Wum7cDS7SohtLqgT5Xy3
  150. glNTq/Qf50qs9CSO4qpcK5GGRQKriXSO6S/cRIzx6wSacNYfc+/WZAVQWkBQ+JBRev7UckYoz/yI
  151. RhPUjhXQw1ArMtX8YIHu0IkxRAl5csUOuMzgJWxi8e48TdXBsUqIcyVtHH/C3BqtvkUct4udWkt3
  152. oACj5dSxX45/DRdiaRmuCXtg0KxOjXOG1o5t72pL+XlKMxAKqH2LJ7h5cA883DUHvgAtqB+NB5Jm
  153. rI1KpQIuZV87Z3x7Ji4uOOWcUK5/igDJ7WjguWwQLWTB6OIVknbhfhNGt+UZXIGckZIhg8dtZPni
  154. /omMrHVnvraGRYfwZmnTmfdJpuIiSINRyKnXKI643hzTKrDehBIQ6opBUZXmEX/Nuh3U83XtzUbd
  155. LoGc/uj9WEsQCoRricnVEMVLW4omG4696dVBz8Vj7cJoVRYwOWgrOwmr4GCgSjMCqinAHJax74BS
  156. 40sdwjG6fqmqbVjChrpQoWxrFfqP6lkK48glI7ZqR4yDZNkAv3YA1zfUD/mpHiuqWVkyoh4rXUGy
  157. ZNSTJfOoKpNlo+oXRJUoy4Ys2TSsVlm2orLb9273b8dif6ivVhmVyDVN9qUrreMo6cpAzMWOYpGK
  158. yXjTfY9iT/yEoo5cTO3yghZAvEF/SHPUXERJrcNIreXgbqWSEWG+j1Ivx0LkiqthXYvaCuleVK3a
  159. dQpdx+V+uCznZmhKem7uibtycy/YsZs70X7eohtsdrEXX0gsb6HhvC9N67YO89Q5ngwn8eJ8auo6
  160. QFOPJZ8paysbSHCS0EhrrgkykcZcRaXOv4VJPVH6nU9WZvEFq3q9jev4fd2fBuE4wQN5PpcOMS2F
  161. liGT4xxWqa/KZpZPeh6Y1ZIiPTWuxveRFq4CuxOW/+fCUuGY1QwmKqegHS7RRJVubr6xAFJtB/jQ
  162. xFyYzFclRQQGp3l/vPsMKyfIM5jFeNLlFg4rXcb4MgBnH7vY4ss+uZHhINW8DOJZ8qupSI2hEgbM
  163. k0o0tkTHStbwgaM6b3LxBBQfVBEmuKuUKBjCjrvi/QRiMzWMnEWIRa9huWdZfIYGL6/cRGxTGkNP
  164. VAmZn0Tvv2t77sgR7bbnbLfh4WcBT+KZgGen+ZXCQ9WVceKd83JRs0WxKuLEhnEsUyyLxOR5To7G
  165. Mv+uL/75T7FUGD9zjsH+bE5jtdNOPSypJaPfMPtgBWeG5QfqO7tEZVYf8GG9oil52/LSHAstXclj
  166. wvghn+tygOWqjDaNnS2Am0bScC0xUb7Ggn9LLO8Mar70dKt1Ll3YCT6ixhSk/q5H6FywNc4VP5XS
  167. bBpwXlaaH5LmQ13RuhyttYqQdX8TxVZhryIkFRjoUlNM3KIdpAu4DRyrszHqRP0hA9S/FFBd75cm
  168. 3eFVNCFnXxMlxVge4Hk5Ub+C1fQG1/UsbsgSWHUbY1RJjU6lDhVi1AEnsnw9VWonL+9mzvgkNphJ
  169. uur3ej3Y3QCLOMVohBwtQJ5LGD/XLMVdVVQmbAHXcRkVsNQcWDJAUoeUL+UGoypFfhJFH1inYmDI
  170. 5SXUqJPw+qiwyCN1iNiJfYtTLEx6tZg8quDBG1BCZGgjQirn27KmjcspVZznKu9eJV2KCywZ4kbB
  171. B9MF4KjC2QngdfMzbQdb/WajIifGE7LMD/VTKzWVHT+LVom4LbBCrcoBSis39TRZnvO0FrmmyOCI
  172. Tr7/JZVZPcYQRRMKIME8qvT8MLegyuMh06jzo2ywqwlS3a9QmVCYRWVHEUBROK3sKH2sHnsAXK5D
  173. XQ5YCdrXQ9a7VDhyckgRqxNwzH9G5kZCqg7HjBzYRrYYhpuziLyLOoLIB6K4rN+8/wW1o1Jx7I3Y
  174. 0xeOUptKuHFoRQ1pMw0fKwJets26AsRsMdfdUaOupLqUXFadcMkLV2njcPoJCYo1Jn5I+lWDcci/
  175. oDbtjFr6Bb6NY3ShPmH55iWWbkOwN44FHlWqPranrTKWI1vNWw6bnlytfqDiH7qFIQt207n97I1S
  176. xZzt9wvNZ9YN4h7fH66pWlSXD9Dgp1ivCMiBkUi9CdZ8+yEW0JP3rm4cVaLYvNiQquowHj7DEOkM
  177. Q+AzFRkP6K5Fc3WxYxSPJdfjmdABzFpE929MJhD9XYxGEboKHvJDMXVnZh6jZoZdgx2kXWsTSajq
  178. VZkY3oN0MUI00soJuDn1RpzWX+CEpdM3JvCqmN4MzeN6Pa9JEWgMyCeicia8uBKnmZWRUFtYxok6
  179. fCNSOPaU2MOcrdfTDfjrQT5EL6OQGhGU5dDpkBztYsrlph029K1dkT71WMJdgGURipaHEuwiaN1p
  180. ZV6mfsJTk91UQlVXWEwcX1dRTCrzTPnCeVEx/wABfFd34bgslU9fKDxkOXlujx8od7y0a7rZiq2o
  181. QSUvCntaCKdUL3N/Uif/q0ejeC2xIzZ1lUPBlxHKBTYNFHPf722AJ3P/MTBLOX+hps39GHJyyp/z
  182. ALuwIuUj65IEdii/B9av94+ExvqbEM7d9zIblHvSzVdGj4+P1XKYwXQiAcu/38Woy9pX+LNuSDp8
  183. 0jaH68OhBX/RjfmPbI+63sbJgModN9dUGatiaICK7R8pJ9ldLZk18BlmDQQSmhL05VrsNpBVKq4C
  184. 1VzIvT0oztcx+4iCgbY6WZZaBSv7K4y1q704Pv7zwDqlqXcuf9aHXWSTiUyrLyESWZYuoqfrchVv
  185. cLtjDP7tLw0QKtZtAcMOhQpsXrv2avKaAxsDrrettJJXWmke1jcfxXFO3DrvSmuwioOVK7YlXtaf
  186. IVzDVv3f9wLoDHz8P/PrX+ULoEOPbsMtMGbN7x7hl7q7nUcxKDLYBPt+2dCL/Kn84//YRc+7m553
  187. Nz3/1O97rWD1ZVcqYdSeH3dhd2CFXhqLa3HcFZsgOK/W+10QqLAr/stLxsALL71wtACQeIv61WFX
  188. 9B8/xQKtt/Iq8GNXvO7uddVPb930Mx3FS2985wmVBKrdDO8O+a4qeenAy0V+mSmR6SLM9JUdZUxU
  189. xRSqe32riQrXuF036TeleHESy5SqcLLPXqn51dwM5Bk8mFZ+IYtvGuIvzY7JdWKMOKut72whzh/7
  190. p654YKEGbxZWXKY1V7kUNcAx2Cmo90xdcgE/48kdx3PlXUWx9dMePEX6TJ9hYglL4mG3wrnyysEq
  191. Bv0HHi5M4jCML1MOgqiuhaKg4DxCuSKnpE+JBl3vQg4qAyK/3mzCR2sLyDfRRk11KrpM5Y9FUBpK
  192. vetf19OcDRWKrnQJSOkQsnaq/DBSF4DQcRSI3MT+iYb8txmUf8K7YjtDFngmu53Q+DdsHqu4qV8A
  193. AA==
  194.  
  195. --231244123-63504888-908179209=:18827--
  196.